home *** CD-ROM | disk | FTP | other *** search
/ PC Media 22 / PC MEDIA CD22.iso / share / prog / spm220e / testmodc.c < prev    next >
Text File  |  1995-09-01  |  3KB  |  108 lines

  1. /*
  2. ╔═════════════════════════════════════════════════════════════════════════════╗
  3. ║ NAME      : TESTMODC.C                                                      ║
  4. ║ FUNCTION  : A simple demo. of how to use MODEM.C...                         ║
  5. ║ COPYRIGHT : HETRU Fabrice 1991-1995.                                        ║
  6. ╚═════════════════════════════════════════════════════════════════════════════╝
  7. */
  8.  
  9.  
  10.  
  11. #include "modem.c"
  12.  
  13. #include <stdio.h>
  14. #include <ctype.h>
  15. #include <process.h>
  16.  
  17. #define Int1B     0x1B  /* Interrupt to manage "Ctrl-Break". */
  18.  
  19.  
  20. void interrupt (*OldIBreak) ();
  21.  
  22.  
  23. void interrupt CtrlBreak()
  24.   {
  25.   }
  26.  
  27.  
  28. int kb_hit()
  29.   {
  30.   inregs.h.ah = 1;
  31.   int86(0x16,&inregs,&outregs);
  32.   return( !(outregs.x.flags & 64) );
  33.   }
  34.  
  35.  
  36. int get_clav()
  37.   {
  38.   int h,l;
  39.  
  40.   if (kb_hit())
  41.     {
  42.     inregs.h.ah = 0;
  43.     int86(0x16,&inregs,&outregs);
  44.     l = outregs.h.al;
  45.     h = outregs.h.ah;
  46.     if (l==0) l = h+0x100;
  47.     return(l);
  48.     }
  49.   else return(0);
  50.   }
  51.  
  52.  
  53. main()
  54.   {
  55.   unsigned int fmt;
  56.   unsigned int InBuffSz,OutBuffSz;
  57.   int car = ' ';
  58.   unsigned char cs;
  59.   unsigned int n;
  60.   unsigned char modsc;
  61.   int Curs_OFF = 0x0720;
  62.  
  63.   printf("HAYES modem testing using the C interfacing.\n");
  64.   /* Set "CommPort" to the COM number to use (0 to 7) ! */
  65.   CommPort = 0;
  66.   if (Check_STARCOMM_Present()==0)
  67.     {
  68.     printf("Please, load STARCOMM.EXE...\n");
  69.     exit(1);
  70.     }
  71.   else printf("<I>nitialize  <C>onnect  <H>ang-off  Q==>QUIT\n");
  72.   Init_status();
  73.   Init_Port('7','1','N',2400,&InBuffSz,&OutBuffSz);
  74.   Open_Port();
  75.   OldIBreak = getvect(Int1B);
  76.   setvect(Int1B,CtrlBreak);
  77.   Show_CorF = TRUE;
  78.   install_Clock();
  79.   while(car!='Q')
  80.     {
  81.     if (kb_hit())
  82.       {
  83.       car=toupper(get_clav());
  84.       switch(car)
  85.         {
  86.         case 'I': { CmdeToModem(InitMod,''); break; }
  87.         case 'C': { CmdeToModem(Connect,''); break; }
  88.         case 'H': { CmdeToModem(Raccroch,''); break; }
  89.         case 59: printf("<I>nitialize  <C>onnect  <H>ang-off  Q==>QUIT\n");
  90.         }
  91.       }
  92.     if (CheckBufferIn(&n))
  93.       {
  94.       if (ReadSerie(&cs,1,&n)==0) printf("%c",cs);
  95.       }
  96.     }
  97.   un_install_Clock();
  98.   modsc = peekb(0x40,0x49);
  99.   if ( (modsc==2) | (modsc==3) | (modsc==7) )
  100.     movedata(FP_SEG(&Curs_OFF),FP_OFF(&Curs_OFF),seg_ecran,158,2);
  101.   else movedata(FP_SEG(&Curs_OFF),FP_OFF(&Curs_OFF),seg_ecran,76,2);
  102.   Reset_Init_status(Format);
  103.   if (wherex()>1) printf("\n");
  104.   if (Close_COMM(TRUE)!=0) printf("Port NOT closed !\n");
  105.   printf("Test has terminated.\n");
  106.   setvect(Int1B,OldIBreak);
  107.   }
  108.